package com.itheima.b_string;

import java.util.Random;

/**
 * 案例：使用String来开发验证码。 定义方法实现随机产生n位验证码，验证码的每位可能是数字、大写字母、小写字母。
 */
public class StringDemo04 {

    public static void main(String[] args) {
        String code = getCode(6);
        System.out.println("验证码是：" + code);
    }

    public static String getCode(int num) {
        //2.提供验证码字符素材的字符串
        String data = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
        //3.还需要一个字符串存储验证码数据。没有获取随机字符之前，这个验证码内容是""
        String code = "";
        //4.要获取随机的字符，这里有随机功能，创建Random对象
        Random r = new Random();
        //5.循环获取num个随机字符，for循环num次
        for (int i = 0; i < num; i++) {
            //6.获取随机的整数代表字符串索引，字符串索引从0开始。
            //字符串长度：字符串对象.length()
            int index = r.nextInt(data.length());
            //7.从data字符串中获取index索引位置的字符。字符串对象.charAt(索引)
            char ch = data.charAt(index);
            //8.将获取到的字符，拼接到code字符串。用+
            code += ch;
        }
        //7.返回验证码
        return code;
    }
}
